package feishuUtil

import (
	"encoding/json"
	"strings"
)

type UserI interface {
	UserInfo(openId string) (ui GetUserInfoResp, err error)
}

type GetUserInfoResp struct {
	Code int `json:"code"`
	Data struct {
		User struct {
			Avatar struct {
				Avatar240    string `json:"avatar_240"`
				Avatar640    string `json:"asvatar_640"`
				Avatar72     string `json:"avatar_72"`
				AvatarOrigin string `json:"avatar_origin"`
			} `json:"avatar"`
			Description   string `json:"description"`
			Email         string `json:"email"`
			EnName        string `json:"en_name"`
			Mobile        string `json:"mobile"`
			MobileVisible bool   `json:"mobile_visible"`
			Name          string `json:"name"`
			OpenID        string `json:"open_id"`
			UnionID       string `json:"union_id"`
			UserID        string `json:"user_id"`
		} `json:"user"`
	} `json:"data"`
	Msg string `json:"msg"`
}

func (fc FeishuClient) UserInfo(openId string) (ui GetUserInfoResp, err error) {
	fg, err := fc.request("GET", "/open-apis/contact/v3/users/"+openId, strings.NewReader(""))
	if err != nil {
		return
	}
	err = json.Unmarshal(fg, &ui)
	if err != nil {
		return
	}
	return
}
